package com.xinzhitong.www.service;

import com.xinzhitong.www.enumeration.CollectionType;
import com.xinzhitong.www.exception.CollectionException;
import com.xinzhitong.www.utils.MyPageInfo;

/**
 * 收藏服务
 *
 * @author 徐鑫
 */
public interface CollectionService {

    /**
     * 获取收藏
     *
     * @param collectionType 收藏类型
     * @param pageNo         页码
     * @param pageSize       页大小
     * @return 收藏列表
     * @throws CollectionException 收藏异常
     */
    MyPageInfo getCollections(
            CollectionType collectionType,
            Integer pageNo,
            Integer pageSize
    ) throws CollectionException;

    /**
     * 添加一条收藏
     *
     * @param id             收藏物的id
     * @param collectionType 收藏类型
     * @throws CollectionException 收藏异常
     */
    void addACollection(Integer id, CollectionType collectionType) throws CollectionException;

    /**
     * 移除一个收藏
     *
     * @param id             收藏物的id
     * @param collectionType 收藏类型
     * @throws CollectionException 收藏异常
     */
    void removeTheCollectionOf(Integer[] id, CollectionType[] collectionType) throws CollectionException;

}
